package ae.pcfc.cldos.online.common.manager;


public interface EncryptionManager {
	
	/**
	 * Encrypt String by AES algoritm
	 * 
	 * @param in
	 * @return
	 */
	public String encrypt(String in);
	
	/**
	 * Decrypt String by AES algoritm
	 * 
	 * @param in
	 * @return
	 */
	public String decrypt(String in);
	
	/**
	 * Encode to UTF-8
	 * 
	 * @param in
	 * @return
	 */
	public String encode(String in);
	
	/**
	 * Decode from UTF-8
	 * 
	 * @param in
	 * @return
	 */
	public String decode(String in);
	
	/**
	 * Encrypt and encode
	 * 
	 * @param in
	 * @return
	 */
	public String encryptAndEncode(String in);
	
	/**
	 * Decode and decrypt
	 * 
	 * @param in
	 * @return
	 */
	public String decodeAndDecrypt(String in);
	
	public String base64decode(String in);
	
	public byte[] base64decodeToByteArray(String in);
	
	public String base64encodeToString(byte[] in);
}
